package com.yonyou.iuap.shell.service.intf;

import java.util.List;
import java.util.Map;

import com.yonyou.iuap.base.intf.IKmBaseService;
import com.yonyou.iuap.shell.entity.KmPublishEntity;
import com.yonyou.iuap.shell.entity.exp.KmAttPoJo;
import com.yonyou.iuap.shell.entity.exp.KmpublishPoJo;
import com.yonyou.iuap.shell.pub.RequestDto;
import com.yonyou.iuap.shell.pub.ResultDto;

public interface IKmPublishService extends IKmBaseService {

	/**
	 * 添加知识表信息
	 * @param listvo
	 * @return
	 */
	public ResultDto insert(List<KmPublishEntity> listvo);
	/**
	 * 修改知识表信息
	 * @param listvo
	 * @return
	 */
	public ResultDto update(List<KmPublishEntity> listvo);
	/**
	 * 根据条件删除知识信息
	 * @param whereSql
	 * @return
	 */
	public ResultDto deleteByCondition(String whereSql);
	/**
	 * 根据条件查询知识信息
	 * @param whereSql
	 * @return
	 */
	public ResultDto queryByCondition(String whereSql);
	
	/**
	 * 根据条件查询知识和附件信息
	 * @param whereSql
	 * @return
	 */
	public ResultDto queryKnowledgeAttachment(Map<String, String> map);
	
	/**根据知识pk查询知识信息
	 * @param map
	 * @return
	 */
	public ResultDto queryKnowledgebypk(Map<String, String> map);
	
	/**根据知识pk查询知识附件
	 * @param map
	 * @return
	 */
	public ResultDto queryKnowledgeattbypk(Map<String, String> map);
	
	/**
	 * 根据关键字查询知识发布和评论，收藏信息
	 * @param whereSql
	 * @return
	 */
	public ResultDto queryKmpublishPoJoLike(RequestDto req);
	
	/**
	 * 知识数量统计
	 * **/
	public List<KmpublishPoJo> CountKmpublishPoJo();
	
	
	public ResultDto selectpublishtimeasc(RequestDto request);
	
	public ResultDto queryKmpublishfavoarite();
	
	public ResultDto queryKmpublishfavoaritecomment();
	/**
	 * 条件查询知识库列表 （分页 ） -------------- 
	 * @param whereSql
	 * @return
	 */
	public ResultDto queryKmpublishPoJoLikePc(Map map);
	
	/**
	 * 知识库列表 修改记录 封存标志     是否启用      Y启用   N禁用
	 * @param map
	 * @return
	 */
	public ResultDto updateSealmark(Map<String, String> map);
	/**
	 *  知识修改前 拉取当前要修改的知识信息
	 * @param map
	 * @return
	 */
	public ResultDto updatePublishFront(Map<String, String> map);
	/**
	 * 删除发布的知识
	 * @param parMap.pk_km_publish  知识id
	 * @return
	 */
	public ResultDto delPublishByid(Map<String, String> map);
	/**
	 * 新增知识
	 * @param map 
	 */
	public ResultDto insertPublishEntity(Map<String, String> map);
	/**
	 * 修改知识
	 * @param map 
	 */
	public ResultDto updatePublishEntity(Map<String, String> map);
	
	/**关键字修改
	 * @param map
	 * @return
	 */
	public void updateKey(Map<String, String> map);

}
